Digital media content such as movies, music, games and the like are often distributed digitally in one of two ways: via central servers or via peer-to-peer systems. In central server media distribution systems, an entity such as a user-browsed web site, user-based computer application or user-controlled set-top box actively requests content from a group of one or more central servers over an open network such as the Internet or a closed network such as a cable television loop, wireless network (terrestrial or satellite-based), or POTS (plain old telephone service). Upon receipt of the request, the central server parses the request, creates a connection with the requesting entity, authenticates the entity, and delivers the requested media.
Peer-to-peer systems directly connect two or more entities such as user-based computer applications over a network. Through an index of connected users and/or of connected media content, users share media content and distribute the media content amongst themselves from computer to computer, e.g. from peer to peer. The index of users and content can be centrally located, as in the original music sharing system distributed under the trademark Napster®, or can be itself distributed among the users of the peer-to-peer network and actively updated as users join and leave regions of the ever-changing peer-to-peer network, such as the public peer to peer network commonly known as Gnutella. Some peer-to-peer networks increase efficiency of media distribution by permitting parallel sharing of portions of a particular media work amongst multiple users, using existing file transfer technologies such as those provided under the mark Bittorrent™, such that a peer-to-peer user may be downloading the last minute of a music media file while another user is obtaining the first minute of that music media file from that user simultaneously. Moreover, peer-to-peer networks are scalable in two senses: as more users join the network, more storage and more bandwidth becomes available for sharing, and as a particular media work becomes more popular, more copies of it are on the peer-to-peer network, thus reducing access time for more popular media works.
However, both central server and peer-to-peer server systems have distinctive drawbacks. Central servers can become strained and fail when under heavy and often unpredictable user demand. This is true even when a central server is distributed among many physical servers, or many network locations, through variable load-handling software available from vendors such as Akamai® and the like. Moreover, central servers concentrate the cost of media file distribution with the media file distributor: physical server owners often pay for the network bandwidth they use to distribute media files. While the cost of serving each particular media file is small, the combined costs of serving many media files to many users can be nontrivial. Finally, central server systems are also heavily centrally controlled, making them somewhat useful for presenting prepackaged content to users, but less useful for the sharing of user-created content among users of the network whose popularity is hard to predict.
Peer-to-peer networks have their own drawbacks. Because the structure of the peer-to-peer network is always changing, peer-to-peer networks can be unreliable at times. Moreover, because media files originate with individual unknown and unauthenticated users, peer-to-peer networks are often troubled by viruses, “trojan horse” malicious software pretending to be legitimate media files, pirated media content, and generally inaccurate indexing that is either reliant on the availability of a central server or on a constantly-changing set of users. As a result, it is sometimes difficult to reliably share a particular media file on presently available peer-to-peer networks. Peer-to-peer networks, due to the frequent lack of central control, are also difficult to monitor for inappropriate or unlicensed content. In the same vein, it is sometimes difficult to authenticate individual users of a peer-to-peer network, either to ensure file authenticity, to track down malicious files or illegitimate files, or to permit users to communicate amongst themselves reliably.
Moreover, media files themselves are subject to a plethora of frequently incompatible media formats. Some media formats, such as those available from RealNetworks®, require the user to separately download a player program. Others require the user to separately download one or more codecs, devices that can convert audio and video to a format visible to the user. Moreover, some media formats create large files, or are incompatible with some computing platforms. Some media formats are specifically implemented only for delivery as a complete file, while others are optimized or are only created for streaming of a media file to a user. Even streaming media file formats, however, frequently have many different codecs, and even many different version incompatibilities within the same codec, creating user frustration. Moreover, current streaming media formats typically involve a long initial delay while media is being “buffered,” or transferred to a local memory cache, for pseudo-real time playback. Some media formats are only available for limited computing platforms, making some media files unavailable to those with unsupported computers or operating systems. Along the same lines, streaming media frequently suffers from pauses, skips and lags that vary from format to format. The result of these incompatibilities is that a user, in order to share media with a friend, must ensure that the media format is supported by the friend's computer and operating system, that the friend has a media player compatible with the media format, and that the friend has an appropriate codec downloaded for that particular media format along with all appropriate licenses.
Neither current media formats, current central server systems, nor current peer-to-peer networks are optimized for the user's own control of who can access that user's media and media format. In an age where users frequently want to share legitimate media files such as family photos, music, and other media amongst a small group of family members or friends, current systems make it difficult for a typical home computer user to (1) create a defined group of other users who have access to that user's media files, (2) authenticate the other users to grant them access to some or all of that user's media files, (3) authenticate the legitimacy of a media file and/or the right to share the file, and (4) provide the other users with a simple, universal method for obtaining access to and viewing media files that may be in a large number of different formats.